#ifndef _TABDYNTIR_H
#define _TABDYNTIR_H
#include "Tir.h"

struct sTabdyntir
{
  unsigned int capacite;/**@brief la capacité total du tableau */
  unsigned int taille_utilisee;;/**@brief la taille utilisee c'est à dire
                            le nombre de tir dans le tableau*/
  Tir* ad;/**@brief ad est un pointeur sur tir,il sert  d'acceder aux
                tirs dans le tableau*/
};
typedef struct sTabdyntir TabDynTir;

/**@brief tabdynTirInit:
<B> Precondition : t non prealablement initialise
    Postcondition : t initialise a une alveole vide (taille utilisee nulle)   </B> */
void tabdynTirInit(TabDynTir* );

/** @brief tabdynTirTestament:
<B> Precondition : t prealablement initialise
    Postcondition : t pret a disparaitre. La memoire allouee dynamiquement
   est liberee. On ne pourra plus appeler les sous-programmes qui
   necessitent que t soit initialise.   </B> */
void tabdynTirTestament(TabDynTir* );

/** @brief tabdynAjouterTir:
<B> Precondition : t prealablement initialise
    Postcondition : Le nouvel tir t est ajoute dans la premiere alveole inutilisee
   du tableau, la taille utilisee est incrementee de 1. Doublement de la
   capacite de t, si necessaire. </B> */
void tabdynAjouterTir(TabDynTir* ,const Tir* );

/** @brief tabdynSupprimerTir:
<B> Precondition : t prealablement initialise et non vide
    Postcondition :le tir se trouvant a cette position
    est supprimer.la taille utilisee du tableau est decrementee de 1. Si
   tailleUtilisee < capacite/3, alors on divise la capacité par 2. </B> */
void tabdynSupprimerTir(TabDynTir* ,int position);


#endif

